package utils

import (
	"math/rand"
	"path/filepath"
	"strconv"
	"time"
)

// GetFileName 生成带日期和时间的文件名，随机数后缀不包含冒号
func GetFileName(originalName string) string {
	// 提取原始文件的扩展名
	ext := filepath.Ext(originalName)
	// 获取当前时间格式化为2006-01-02-15_04_05
	currentTime := time.Now().Format("2006-01-02-15_04_05")

	// 创建一个新的随机数生成器，使用当前时间的纳秒级别作为种子
	source := rand.NewSource(time.Now().UnixNano())
	// 使用新的随机数生成器创建一个随机数生成器
	random := rand.New(source)
	s := ""
	// 生成一个 0 到 9 之间的随机数
	for i := 1; i <= 7; i++ {
		s += strconv.Itoa(random.Intn(10))
	}

	// 构建新的文件名，格式为：2006-01-02-15_04_05_随机数
	newFileName := currentTime + "#" + s + ext

	return newFileName
}
